\documentclass[a4paper,10pt]{article}

\usepackage[utf8x]{inputenc}
\usepackage{ucs}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[left=2cm,top=2.5cm,right=3cm,bottom=3cm]{geometry}
\usepackage{listings}
\usepackage{graphicx}
\usepackage[frenchb]{babel}
\usepackage{fancyhdr}
\usepackage{float}
\usepackage{supertabular}
\selectlanguage{francais}
%opening

%opening


\begin{document}

\pagestyle{fancy}
\lhead{ \includegraphics[scale=0.15]{LogoHEIG.png}}
\rhead{IBD}
%\rfoot{Nicolas Muller, Jonas Renaudot \& Raphael Tripet}
\renewcommand{\footrulewidth}{0.4pt}


\begin{titlepage}
\includegraphics[height=2cm]{LogoHEIG.png}\newline
\begin{center}
\vspace*{\stretch{1}}
{\Huge IBD Gestion d'anime / de manga AnimeNoBaka
\paragraph{}
\large
\begin{tabular}{r l}
\textbf{Auteurs : } & Jonas Renaudot\\
		   & Raphael Tripet \\
		& Nicolas Muller \\
\textbf{Date : } & 27.11.2008\\
\textbf{Promotion : } & IL2009 \\
\textbf{Module : } & IBD\\
\textbf{Professeur : } & A. Guerid \\
\end{tabular}
}

%\includegraphics[width=10cm]{firewall.jpg}\newline
%Source : http://z.k.free.fr/firewall.jpg

\vspace*{\stretch{1}}
\end{center}
\includegraphics[height=2cm]{HES_SO_fr.png}
\end{titlepage}

\tableofcontents
\newpage

\section{Introduction}
Réalisation d'un logiciel de gestion de mangas et d'animés, utilisant un SGBD embarqué\footnote{SGBD embarqué : SGBD présent à même l'application.}, développé en Java. Afin de garantir une portabilité entre différents systèmes d'exploitation, nous avons décidé d'utiliser le language Java pour développer l'application et d'utiliser un SGBD embarqué développé entièrement en Java.\newline
L'application est développée pour être utilisée à la ligne de commande. La gestion des animes et des mangas se fait sur trois niveau : en premier, il y a la série, suivit de la saison puis d'un épisode / d'un tome. Une série contient plusieurs saisons et une saison contient plusieurs épisodes / tomes.\newline
Nous utilisons le SGBD Derby, qui est un SGBD développé par Apache, entièrement en Java. Derby est soutenu par Sun.

\section{Objectifs}
\subsection{Application à réaliser}
Cette section liste les fonctionnalités à implémenter dans l'application. Les champs composant les différents éléments sont présentés, les lignes en \textbf{gras} représentant les informations obligatoires lors de l'enregistrement de données.

\paragraph{}
Les commandes implémentées permettent de :

\begin{itemize}
 \item créer, modifier et supprimer une série
 \item créer, modifier et supprimer une anime / un manga
 \item créer, modifier et supprimer un épisode d'une anime / un tome d'un manga
\end{itemize}
\paragraph{}

Les séries sont composées
\begin{itemize}
 \item \textbf{d'un nom}
 \item d'une évaluation
 \item d'un commentaire
 \item d'un synopsis
 \item d'une date de sortie
\end{itemize}
\paragraph{}

Les animes / les mangas sont composés
\begin{itemize}
 \item \textbf{d'un nom}
 \item d'une évaluation
 \item d'un commentaire
 \item d'un synopsis
 \item d'une date de sortie
\end{itemize}
\paragraph{}

Les épisodes animés sont composés
\begin{itemize}
 \item \textbf{d'un nom}
 \item d'un synopsis
 \item d'une durée
\end{itemize}
\paragraph{}

Les tomes sont composés
\begin{itemize}
 \item \textbf{d'un nom}
 \item d'un synopsis
 \item d'un nombre de page
\end{itemize}

\paragraph{}
Si le temps le permet, nous mettrons en place un système de complétion automatique pour la ligne de commande, afin de faciliter l'utilisation de l'application, ainsi qu'un système de communication en ligne permettant de récupérer des saisons, des animes et des épisodes d'autres utilisateurs de l'application. Il sera aussi possible, dans le cas ou le temps le permettrait, de gérer des fichiers / répertoires locaux à l'aide de l'application et de générer automatiquement une liste d'anime à partire des fichiers locaux.

\subsection{Technologie à présenter}
Ce projet nous sert à mettre en oeuvre un SGBD embarqué réalisé en Java. Nous avons décidé de présenter la technologie Derby, soutenue par Sun. Derby est un SGBD embarqué réalisé par la société Apache entièrement en Java et donc portable. Nous allons pouvoir, au travers de ce projet, étudier les fonctionnalités offertes par ce SGBD ainsi que son utilisation, et nous pourrons donc faire une critique constructive du logiciel à la fin du rapport.

\section{Planification}
La figure \ref{pre_planification} montre la planification prévue pour le développement du logiciel.

\begin{figure}[!h]
\begin{tabular}{|c|l|p{10cm}|}
\hline
 \textbf{Séance} & \textbf{Date} & \textbf{Tâche} \\
\hline
\textbf{1} & 27.11.2008 & Réalisation du cahier des charges et de la planification, recherche d'une technologie à étudier (SGBD embarqué) afin de préciser le cahier des charges. \\
\hline
\textbf{2} & 04.12.2008 & Etude de la technologie embarquée à employer, réalisation du MLD de la base de données ainsi que le diagramme UML de l'application, selon le modèle MVC. Réalisation des cas-tests à effectuer sur l'application. \\
\hline
\textbf{3} & 11.12.2008 & Implémentation de la partie Modèle et de la partie Contrôle de l'application, selon le modèle MVC. Réalisation partielle du document relatif à la technologie étudiée et utilisée : étude de la technologie, présentation des origines, des fonctionnalités et du fonctionnement. \\
\hline
\textbf{4} & 18.12.2009 & Implémentation de la partie Vue selon le modèle MVC. Test de l'application selon les cas-tests réalisés. Fin du document relatif à la technologie étudiée et utilisée : critique de la technologie. \\
\hline
\textbf{5} & 08.01.2009 & Implémentation d'éventuelles parties supplémentaire, si le temps le permets. Sinon, finalisation du rapport et du document relatif à la technologie étudiée et utilisée. \\
\hline
\textbf{6} & 15.01.2009 & Remise du travail accompli. Cette séance est gardée en réserve pour paufiner le rapport et le document relatif à la technologie étudiée, ainsi qu'en cas de retard. \\
\hline
\end{tabular}
\caption{Planification prévue}
\label{pre_planification}
\end{figure}

\section{Cas-Tests}
Cette section présente les cas-tests effectués sur l'application. Vu le temps à disposition et la taille du projet, les cas-tests sont relativement minimes et tests les fonctionnalités principales.
\begin{center}
% use packages: array,supertabular
\begin{supertabular}{|c|p{5cm}|p{5cm}|l|p{2cm}|}
\hline
\tablehead{\hline \textbf{CT} & \textbf{Procédure} & \textbf{Résultat attendu} & \textbf{OK} & \textbf{Remarque}\\ \hline}
\tabletail{\hline}
\textbf{CT} & \textbf{Procédure} & \textbf{Résultat attendu} & \textbf{OK} & \textbf{Remarque}\\
\hline
\hline
1 & Démarrer l'application & L'application démarre correctement : le nom de l'application et des auteurs sont présents. & OK & \\ 
\hline
2 & Liste des manga grâce à la commande ls. & Tous les mangas sont affichées à l'écran. & OK & \\ 
\hline
3 & Liste des saisons et des épisodes d'un manga grâce à la commande ls \textit{nom anime}. & Toutes les saisons et les épisodes du manga sont affichées à l'écran. & OK & \\ 
\hline
4 & Entrée dans le contexte d'un manga grâce à la commande cd \textit{nom manga} & Le prompt contient le nom du manga courrant. & OK & \\ 
\hline
5 & Entrée dans le contexte d'une saison grâce à la commande cd \textit{nom saison} & Le prompt contient le nom de la saison courrante. & OK & \\ 
\hline
6 & Insertion d'un manga grâce à la commande new \textit{nom manga} \textit{synopsis} \textit{date} & Le manga est ajoutée. & OK &  \\ 
\hline
7 & Entrée dans le contexte d'un manga. Insertion d'une saison grâce à la commande new \textit{nom saison} \textit{synopsis} \textit{date} & La saison est ajoutée dans le manga. & OK & \\ 
\hline
8 & Entrée dans le contexte d'une saison. Insertion d'un tome grâce à la commande new tome \textit{nom tome} \textit{synopsis} \textit{nombre de pages} & Le tome est inséré. & OK & \\ 
\hline
9 & Entrée dans le contexte d'une saison. Insertion d'un épisode grâce à la commande new episode \textit{nom episode} \textit{synopsis} \textit{durée} & L'épisode est inséré. & OK & \\ 
\hline
10 & Suppression d'un manga grâce à la commande del \textit{nom manga}& Le manga est supprimé, ainsi que toutes ses saisons et ses tomes / épisodes. & OK & \\ 
\hline
11 & Entrée dans le contexte d'un manga. Suppression d'une saison grâce à la commande del \textit{nom saison}& La saisons est supprimée, ainsi que tout ses tomes / épisodes. & OK & \\ 
\hline
12 & Entrée dans le contexte d'une saison. Suppression d'un tome / d'un épisode grâce à la commande del \textit{nom tome / épisode}& Le tome / l'épisode est supprimé. & OK & \\ 
\hline
13 & Modification d'un manga grâce à la commande set \textit{nom anime} \textit{nom paramètre} \textit{nouvelle valeure}. & La valeure correspondant au paramètre est modifiée. & OK &\\
\hline
14 & Entrée dans le contexte d'un manga. Modification d'une saison grâce à la commande set \textit{nom saison} \textit{nom paramètre} \textit{nouvelle valeure}. & La valeure correspondant au paramètre est modifiée. & OK & \\
\hline
15 & Entrée dans le contexte d'une saison. Modification d'un tome / épisode grâce à la commande set \textit{nom tome / épisode} \textit{nom paramètre} \textit{nouvelle valeure}. & La valeure correspondant au paramètre est modifiée. & OK & \\
\hline
\end{supertabular}
\end{center}
\tablehead{}
\tabletail{}

\include{Derby}

\section{Conclusion}
Ce laboratoire nous a permis de mettre en pratique l'utilisation d'un système de gestion de bases de données embarqué. Derby s'est avéré très facile d'utilisation, puisqu'il fonctionne via JDBC, et le fait qu'il soit entièrement réalisé en Java le rend portable. Un outil comme Derby s'avère indispensable lorsque nous souhaitons réaliser de simples applications multiplateformes utilisant une base de donnée.\newline
Le point faible de Derby est ses performances lors de l'utilisation dans de grandes bases de données, puisqu'il est entièrement réalisé en Java.\newline
Le projet s'est déroulé de manière fluide, nous avons bien respecté la planification réalisée au début du projet, nous permettant de bien tester l'application et de compléter correctement les divers document rendus.

\vspace*{\stretch{1}}
\begin{flushright}
\textbf{Signatures :}\newline
\begin{tabular}{|r|p{6cm \vspace{1cm}}|} 
 \hline
\textbf{Jonas Renaudot} & \\
\hline
\textbf{Raphael Tripet} & \\
\hline
\textbf{Nicolas Muller} & \\
\hline
\end{tabular}


\end{flushright}


\end{document}
